﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Web;

namespace KPWeb.Function
{
   static public class FunctionGlobal
    {


       static public bool ValidatePassword(string password)
       {
           const int MIN_LENGTH = 8;


           if (password == null) return false;

           bool meetsLengthRequirements = password.Length >= MIN_LENGTH;
           bool hasUpperCaseLetter = false;
           bool hasLowerCaseLetter = false;
           bool hasDecimalDigit = false;
   
           int countSpecialDigit = 0;
           int countChar=0;
           if (meetsLengthRequirements)
           {
               foreach (char c in password)
               {
                   countChar++;
                   if (char.IsUpper(c)) hasUpperCaseLetter = true;
                   else if (char.IsLower(c)) hasLowerCaseLetter = true;
                   else if (char.IsDigit(c)) hasDecimalDigit = true;
                   else if (Regex.IsMatch(c.ToString(), @"[!#$%&'()*+,-.:;<=>?@[\\\]{}^_`|~]")) countSpecialDigit++; 
               }
           }

           bool isValid = meetsLengthRequirements
                       && (( hasUpperCaseLetter || hasLowerCaseLetter || hasDecimalDigit) && (countSpecialDigit>0)
                       || (countSpecialDigit==countChar))
                       ;
           return isValid;

       }
       static public  int IleDniMiesiac( int year,int month)
           {
             switch (month)
           {
               case 1:
               case 3:
               case 5:
               case 7:
               case 8:
               case 10:
               case 12:
                 return( 31);
            
               case 4:
               case 6:
               case 9:
               case 11:
               return( 30);
             
               case 2:
               if((year % 4)==0) return(29);
               else  return(28);
            
               default: return (0);
   
           }
        }

  
        //static public string errorReplace(string sError)
        //{
        //    sError = sError.Replace("WUMWizytowki", "_");
        //    return sError.Replace("C:\\WebProjekty Waldek ba_re_dev04\\WUMPensum\\Pensum\\WUMPensum", "..");
        //}
     
        static public string DodajParametr(string pocz,string s1, string wartosc,string am)
        {

            return (pocz + am + s1 + "=" + wartosc);
        }
        //static public string Slownie(string doub)
        //{
        //    string kwota = null;
        //    string db = null;
        //    string post = "tysięcy";
        //    if (doub.Length < 10)
        //    {
        //        for (int i = 0; i < 9 - doub.Length; i++)
        //            db += "0";
        //    }
        //    else
        //        return "";
        //    db += doub;

        //    if (db.Substring(0, 1) == "1")
        //        kwota += " sto";
        //    else if (db.Substring(0, 1) == "2")
        //        kwota += " dwieście";
        //    else if (db.Substring(0, 1) == "3")
        //        kwota += " trzysta";
        //    else if (db.Substring(0, 1) == "4")
        //        kwota += " czterysta";
        //    else if (db.Substring(0, 1) == "5")
        //        kwota += " pięćset";
        //    else if (db.Substring(0, 1) == "6")
        //        kwota += " sześćset";
        //    else if (db.Substring(0, 1) == "7")
        //        kwota += " siedemset";
        //    else if (db.Substring(0, 1) == "8")
        //        kwota += " osiemset";
        //    else if (db.Substring(0, 1) == "9")
        //        kwota += " dziewięćset";


        //    if (db.Substring(1, 1) == "2")
        //        kwota += " dwadzieścia";
        //    else if (db.Substring(1, 1) == "3")
        //        kwota += " trzydzieści";
        //    else if (db.Substring(1, 1) == "4")
        //        kwota += " czterdzieści";
        //    else if (db.Substring(1, 1) == "5")
        //        kwota += " pięćdziesiąt";
        //    else if (db.Substring(1, 1) == "6")
        //        kwota += " sześćdziesiąt";
        //    else if (db.Substring(1, 1) == "7")
        //        kwota += " siedemdziesiat";
        //    else if (db.Substring(1, 1) == "8")
        //        kwota += " osiemdziesiąt";
        //    else if (db.Substring(1, 1) == "9")
        //        kwota += " dziewięćdziesiąt";


        //    if (db.Substring(1, 2) == "10")
        //        kwota += " dziesięć";
        //    else if (db.Substring(1, 2) == "11")
        //        kwota += " jedenaście";
        //    else if (db.Substring(1, 2) == "12")
        //        kwota += " dwanaście";
        //    else if (db.Substring(1, 2) == "13")
        //        kwota += " trzynaście";
        //    else if (db.Substring(1, 2) == "14")
        //        kwota += " czternaście";
        //    else if (db.Substring(1, 2) == "15")
        //        kwota += " piętnaście";
        //    else if (db.Substring(1, 2) == "16")
        //        kwota += " szesnaście";
        //    else if (db.Substring(1, 2) == "17")
        //        kwota += " siedemnaście";
        //    else if (db.Substring(1, 2) == "18")
        //        kwota += " osiemnaście";
        //    else if (db.Substring(1, 2) == "19")
        //        kwota += " dziewiętnaście";

        //    else if (db.Substring(2, 1) == "1")
        //    {
        //        kwota += " jeden";
        //        if (kwota == " jeden")
        //            post = "tysiąc";
        //    }
        //    else if (db.Substring(2, 1) == "2")
        //    {
        //        kwota += " dwa";
        //        post = "tysiące";
        //    }
        //    else if (db.Substring(2, 1) == "3")
        //    {
        //        kwota += " trzy";
        //        post = "tysiące";
        //    }
        //    else if (db.Substring(2, 1) == "4")
        //    {
        //        kwota += " cztery";
        //        post = "tysiące";
        //    }
        //    else if (db.Substring(2, 1) == "5")
        //        kwota += " pięć";
        //    else if (db.Substring(2, 1) == "6")
        //        kwota += " sześć";
        //    else if (db.Substring(2, 1) == "7")
        //        kwota += " siedem";
        //    else if (db.Substring(2, 1) == "8")
        //        kwota += " osiem";
        //    else if (db.Substring(2, 1) == "9")
        //        kwota += " dziewięć";
        //    if (doub.Length > 6)
        //        kwota += " " + post;

        //    if (db.Substring(3, 1) == "1")
        //        kwota += " sto";
        //    else if (db.Substring(3, 1) == "2")
        //        kwota += " dwieście";
        //    else if (db.Substring(3, 1) == "3")
        //        kwota += " trzysta";
        //    else if (db.Substring(3, 1) == "4")
        //        kwota += " czterysta";
        //    else if (db.Substring(3, 1) == "5")
        //        kwota += " pięćset";
        //    else if (db.Substring(3, 1) == "6")
        //        kwota += " sześćset";
        //    else if (db.Substring(3, 1) == "7")
        //        kwota += " siedemset";
        //    else if (db.Substring(3, 1) == "8")
        //        kwota += " osiemset";
        //    else if (db.Substring(3, 1) == "9")
        //        kwota += " dziewięćset";


        //    if (db.Substring(4, 1) == "2")
        //        kwota += " dwadzieścia";
        //    else if (db.Substring(4, 1) == "3")
        //        kwota += " trzydzieści";
        //    else if (db.Substring(4, 1) == "4")
        //        kwota += " czterdzieści";
        //    else if (db.Substring(4, 1) == "5")
        //        kwota += " pięćdziesiąt";
        //    else if (db.Substring(4, 1) == "6")
        //        kwota += " sześćdziesiąt";
        //    else if (db.Substring(4, 1) == "7")
        //        kwota += " siedemdziesiąt";
        //    else if (db.Substring(4, 1) == "8")
        //        kwota += " osiemdziesiąt";
        //    else if (db.Substring(4, 1) == "9")
        //        kwota += " dziewięćdziesiąt";

        //    if (db.Substring(4, 2) == "10")
        //        kwota += " dziesięć";
        //    else if (db.Substring(4, 2) == "11")
        //        kwota += " jedenaście";
        //    else if (db.Substring(4, 2) == "12")
        //        kwota += " dwanaście";
        //    else if (db.Substring(4, 2) == "13")
        //        kwota += " trzynaście";
        //    else if (db.Substring(4, 2) == "14")
        //        kwota += " czternaście";
        //    else if (db.Substring(4, 2) == "15")
        //        kwota += " piętnaście";
        //    else if (db.Substring(4, 2) == "16")
        //        kwota += " szesnaście";
        //    else if (db.Substring(4, 2) == "17")
        //        kwota += " siedemnaście";
        //    else if (db.Substring(4, 2) == "18")
        //        kwota += " osiemnaście";
        //    else if (db.Substring(4, 2) == "19")
        //        kwota += " dziewiętnaście";
        //    else if (db.Substring(5, 1) == "1")
        //        kwota += " jeden";
        //    else if (db.Substring(5, 1) == "2")
        //        kwota += " dwa";
        //    else if (db.Substring(5, 1) == "3")
        //        kwota += " trzy";
        //    else if (db.Substring(5, 1) == "4")
        //        kwota += " cztery";
        //    else if (db.Substring(5, 1) == "5")
        //        kwota += " pięć";
        //    else if (db.Substring(5, 1) == "6")
        //        kwota += " sześć";
        //    else if (db.Substring(5, 1) == "7")
        //        kwota += " siedem";
        //    else if (db.Substring(5, 1) == "8")
        //        kwota += " osiem";
        //    else if (db.Substring(5, 1) == "9")
        //        kwota += " dziewięć";
        //    if (kwota == null) kwota += " zero";
        //    else kwota += " zł " + doub.Substring(doub.Length - 2) + "/100 gr";
        //    return kwota;
        //}


        //static public Boolean KontrolaIBAN(string cIban)
        //{

        //    //wymagana postac IBAN: cc aaaa aaaa bbbb bbbb bbbb bbbb (lub bez spacji)
        //    // cc - liczba kontolna
        //    // aaaa aaaa Bank
        //    string cIbanx;
        //    Int64 nSumIl;
        //    int wyn;
        //    int[] wagi = {1, 10, 3,  30,  9, 90, 27, 76, 81, 34, 49,  5, 50,
        //             15, 53, 45, 62, 38, 89, 17, 73, 51, 25, 56, 75, 
        //            71, 31, 19, 93, 57}; //indeksacja tablicy od zera

        //    cIban = cIban.Replace(" ", "");
        //    if (cIban.Length != 26) return false;

        //    cIbanx = cIban.Substring(2) + "2621" + cIban.Substring(0, 2);
        //    nSumIl = 0;

        //    for (int k = 0; k < 30; k++)
        //    {
        //        if (!int.TryParse(cIbanx.Substring(k, 1), out wyn)) return false;
        //        nSumIl += wagi[30 - k - 1] * wyn;

        //    }
        //    if ((nSumIl % 97) == 10) return true;
        //    else return false;
        //}





        static public Boolean KontrolaPesel(string PESEL)
        {

            int suma = 0;
            int wyn;
            int[] wagi = { 1, 3, 7, 9, 1, 3, 7, 9, 1, 3, 1 };
            PESEL = PESEL.Trim();
            if (PESEL.Length != 11) return false;

            for (int i = 0; i < 11; i++)
            {
                if (!int.TryParse(PESEL.Substring(i, 1), out wyn)) return false;
                suma += (wagi[i] * wyn);
            }
            if ((suma % 10) == 0) return true;
            else return false;
        }
        //static public Boolean KontrolaNIP(string NIP)
        //{

        //    int suma = 0;
        //    int wyn;
        //    int[] wagi = { 6, 5, 7, 2, 3, 4, 5, 6, 7 };
        //    NIP = NIP.Trim().Replace("-", "").Replace(" ", "");
        //    if (NIP.Length != 10) return false;

        //    for (int i = 0; i < 9; i++)
        //    {
        //        if (!int.TryParse(NIP.Substring(i, 1), out wyn)) return false;
        //        suma += (wagi[i] * wyn);
        //    }
        //    if (!int.TryParse(NIP.Substring(9, 1), out wyn)) return false;
        //    if ((suma % 11) == wyn) return true;
        //    else return false;
        //}

        //static public string ZastapPolskieZnaki(string s)
        //{
        //  StringBuilder sb = new StringBuilder(s);

        //    sb.Replace('ą', 'a')
        //   .Replace('ć', 'c')
        //   .Replace('ę', 'e')
        //   .Replace('ł', 'l')
        //   .Replace('ń', 'n')
        //   .Replace('ó', 'o')
        //   .Replace('ś', 's')
        //   .Replace('ż', 'z')
        //   .Replace('ź', 'z')
        //   .Replace('Ą', 'A')
        //   .Replace('Ć', 'C')
        //   .Replace('Ę', 'E')
        //   .Replace('Ł', 'L')
        //   .Replace('Ń', 'N')
        //   .Replace('Ó', 'O')
        //   .Replace('Ś', 'S')
        //   .Replace('Ż', 'Z')
        //   .Replace('Ź', 'Z');
        //    return sb.ToString();

        //}

        public static string UppercaseFirstWords(string value)
        {
            char[] array = value.ToCharArray();
      
            if (array.Length >= 1)
            {
                array[0] = char.ToUpper(array[0]);
            }

            for (int i = 1; i < array.Length; i++)
            {
                if (array[i - 1] == ' ' || array[i - 1] == '-')
                {
                     array[i] = char.ToUpper(array[i]);
                 
                }
                else
                {
                    array[i] = char.ToLower(array[i]);
                }
            }
            return new string(array);
        }


        public static double TimeDifferenceInMinutes(DateTime dateone, DateTime datetwo)
        {
            var duration = dateone - datetwo;
            return duration.TotalMinutes;
        }
        public static string ZamienNaGodziny(int czas)
        {
            string Temp = "";
            int iGodz=0;
            int iMin=0;
            if (czas<0) Temp="-";
            iGodz=(czas / 60);
            iMin=czas % 60;
            Temp += ((iGodz>0 ? iGodz.ToString()+" godz ":"") +
                (iMin>0 ? iMin.ToString()+" min":"" ));
            return Temp;
        }
    }
}